<?php

namespace app\admin\controller;
use app\admin\model\Node;
use think\Controller;

class Base extends Controller
{
    public function _initialize()
    {

        if(!session('uid')||!session('username')){
            $this->redirect('login/index');
        }
        
        $auth = new \com\Auth();   
        $module     = strtolower(request()->module());
        $controller = strtolower(request()->controller());
        $action     = strtolower(request()->action());
        $url        = $module."/".$controller."/".$action;

        //跳过检测以及主页权限
        if(session('uid')!=1){
            if(!in_array($url, ['admin/index/index','admin/index/indexpage','admin/upload/upload','admin/index/uploadface'])){
                if(!$auth->check($url,session('uid'))){
                    $this->error('抱歉，您没有操作权限');
                }
            }
        }
        
        $node = new Node();
        $this->assign([
            'username' => session('username'),
            'portrait' => session('portrait'),
            'rolename' => session('rolename'),
            'menu' => $node->getMenu(session('rule'))
        ]);

          $config = cache('db_config_data');

        if(!$config){            
            $config = api('Config/lists');
            cache('db_config_data',$config);
        }
        config($config);
        $this->wx_config= [
            'token'             => config('wx_token'), // 填写你设定的key
            'appid'             => config('wx_appid'), // 填写高级调用功能的app id, 请在微信开发模式后台查询
            'appsecret'         => config('wx_appsecret'), // 填写高级调用功能的密钥
            'encodingaeskey'    => config('wx_encodingaeskey'), // 填写加密用的EncodingAESKey（可选，接口传输选择加密时必需）
            'mch_id'            => config('wx_mch_id'), // 微信支付，商户ID（可选）
            'partnerkey'        => config('wx_partnerkey'), // 微信支付，密钥（可选）
            'ssl_cer'           =>  config('wx_ssl_cer'), // 微信支付，证书cert的路径（可选，操作退款或打款时必需）
            'ssl_key'           =>  config('wx_ssl_key'), // 微信支付，证书key的路径（可选，操作退款或打款时必需）
            //    'cachepath'         => config('wx_appid'), // 设置SDK缓存目录（可选，默认位置在./src/Cache下，请保证写权限）
        ];

        $this->wxConfig= [
            'use_sandbox'       => false,// 是否使用 微信支付仿真测试系统
            'app_id'            => config('wx_appid'),  // 公众账号ID
            'mch_id'            => config('wx_mch_id'),// 商户id
            'md5_key'           => config('wx_partnerkey'),// md5 秘钥
            'app_cert_pem'      => CACERT_PATH. 'wx_apiclient_cert.pem',
            'app_key_pem'       => CACERT_PATH . 'wx_apiclient_key.pem',
            'sign_type'         => 'MD5',// MD5  HMAC-SHA256
            'limit_pay'         => [
                //'no_credit',
            ],// 指定不能使用信用卡支付   不传入，则均可使用
            'fee_type'          => 'CNY',// 货币类型  当前仅支持该字段

            'notify_url'        => config('wx_notify_url'),

            'redirect_url'      =>config('wx_redirect_url'),// 如果是h5支付，可以设置该值，返回到指定页面

            'return_raw'        => true,// 在处理回调时，是否直接返回原始数据，默认为true
        ];

        if(config('web_site_close') == 0 && session('uid') !=1 ){
            $this->error('站点已经关闭，请稍后访问~');
        }

        if(config('admin_allow_ip') && session('uid') !=1 ){          
            if(in_array(request()->ip(),explode('#',config('admin_allow_ip')))){
                $this->error('403:禁止访问');
            }
        }

    }
}